
"""
计算机底层是  0 & 1   高低电平
所有数据（文字、图片、视频）最终都转为 二进制
为了让计算机可以看懂人类的字符，就必须建立 字符  《---》 二进制数字的映射规则，这就是字符编码
 A   计算机实际的存储是使用 ASCII编码格式，存储的是  01000001


 1.3 Unicode：统一全世界字符

✅ 设计目标
- 一个编码标准，包含 所有国家、所有语言 的字符
- 每个字符分配 唯一编号（Code Point）

✅ 编码方式
- 常用字符：**2 字节（16 位）** → 如 'A' → U+0041
- 生僻字（如古汉字）：4 字节（32 位）

✅ 优点
- 彻底解决乱码问题（内存中统一用 Unicode）

✅ 缺点
- 存储/传输效率低例如：英文 'A' 在 ASCII 中占 1 字节，在 Unicode 中占 2 字节 → 浪费 100% 空间！

结论：Unicode 是内存中的标准，不是硬盘存储格式！
"""



"""
✅ 什么是 UTF-8？
- 全称：Unicode Transformation Format - 8-bit
- 是一种 **可变长编码**，将 Unicode 转为更紧凑的二进制


写入硬盘：Unicode → UTF-8（压缩存储）
读入内存：UTF-8 → Unicode（统一处理）
"""
"""
- 文件是操作系统提供的一种 操作硬盘的抽象单位
- 应用程序通过 **读/写文件**，间接控制硬盘存储
- 目的：将内存数据永久保存到硬盘

user = input('姓名：') → 数据在内存  
open('info.txt', 'w').write(user) → 数据存到硬盘
"""



# f = open('file.txt',mode='rt',encoding='utf-8')   # 打开
#
# countent = f.read()    #进行读写
# f.close()     # 关闭

"""
在对文件进行操作完成之后，必须要将文件进行关闭
占用内存资源
写入的内容不会保存（缓冲区没有刷新）
"""


"""
r+:可读可写   文件不存在不会创建，也不会清空
w+:可读可写  文件不存在会创建，并且清空 
a+:可读可写  文件不存在会创建，文件存在的话，会保留

"""


# 使用 b 模式操作文本
#编码
# with open('test.txt','wb') as f:
#     f.write('龙仔'.encode('utf-8'))

#读取（解码）

# with open('test.txt','rb') as f:
#     data = f.read()
#     test = data.decode('utf-8')
#     print(test)



#close容易忘记，并且中出错可能会不执行

#with  自动的调用  close  即使出错了，也会将文件关闭

# with open(.....) as f:



# 文件指针

#
# 文件对象内部有一个 **指针**，记录当前读写位置
# seek()来控制指针的位置


# b模式

# with open('test.txt','rb') as f:
#     f.seek(10)   # 移动到第十行
#     print(f.read(5))   # 从第十行读取五个字节
#
# # t模式
#
# with open('test.txt','rt',encoding='utf-8') as f:
#     f.seek(0)   # t 模式一般是使用 seek 回到开始
#     print(f.read())





# with open('file.txt', 'rt', encoding='utf-8') as f:
#     data = f.read()
#
#
# new_data = data.replace('cvweweraer', '新内容')
#
#
# with open('file.txt', 'wt', encoding='utf-8') as f:
#     f.write(new_data)

